package gestion.horarios.model.jpa.entities;

import java.io.Serializable;
import javax.persistence.*;
import java.util.List;


/**
 * The persistent class for the docente database table.
 * 
 */
@Entity
@Table(name="docente")
public class Docente implements Serializable {
	private static final long serialVersionUID = 1L;
	private int docenteId;
	private String especialidad;
	private String estado;
	private String gradoProfesional;
	private String nombre;
	private String numeroDocumento;
	private String tipoDocumento;
	private List<DisponibilidadDocente> disponibilidaddocentes;
	private List<DisponibilidadDocenteEscenario> disponibilidaddocenteescenarios;
	private List<Curso> cursos;
	private List<SesionLectiva> sesionlectivas;

    public Docente() {
    }


	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(unique=true, nullable=false)
	public int getDocenteId() {
		return this.docenteId;
	}

	public void setDocenteId(int docenteId) {
		this.docenteId = docenteId;
	}


	@Column(length=45)
	public String getEspecialidad() {
		return this.especialidad;
	}

	public void setEspecialidad(String especialidad) {
		this.especialidad = especialidad;
	}


	@Column(length=45)
	public String getEstado() {
		return this.estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}


	@Column(length=45)
	public String getGradoProfesional() {
		return this.gradoProfesional;
	}

	public void setGradoProfesional(String gradoProfesional) {
		this.gradoProfesional = gradoProfesional;
	}


	@Column(length=45)
	public String getNombre() {
		return this.nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}


	@Column(length=45)
	public String getNumeroDocumento() {
		return this.numeroDocumento;
	}

	public void setNumeroDocumento(String numeroDocumento) {
		this.numeroDocumento = numeroDocumento;
	}


	@Column(length=45)
	public String getTipoDocumento() {
		return this.tipoDocumento;
	}

	public void setTipoDocumento(String tipoDocumento) {
		this.tipoDocumento = tipoDocumento;
	}


	//bi-directional many-to-one association to DisponibilidadDocente
	@OneToMany(mappedBy="docente")
	public List<DisponibilidadDocente> getDisponibilidaddocentes() {
		return this.disponibilidaddocentes;
	}

	public void setDisponibilidaddocentes(List<DisponibilidadDocente> disponibilidaddocentes) {
		this.disponibilidaddocentes = disponibilidaddocentes;
	}
	

	//bi-directional many-to-one association to DisponibilidadDocenteEscenario
	@OneToMany(mappedBy="docente")
	public List<DisponibilidadDocenteEscenario> getDisponibilidaddocenteescenarios() {
		return this.disponibilidaddocenteescenarios;
	}

	public void setDisponibilidaddocenteescenarios(List<DisponibilidadDocenteEscenario> disponibilidaddocenteescenarios) {
		this.disponibilidaddocenteescenarios = disponibilidaddocenteescenarios;
	}
	

	//bi-directional many-to-many association to Curso
	@ManyToMany(mappedBy="docentes")
	public List<Curso> getCursos() {
		return this.cursos;
	}

	public void setCursos(List<Curso> cursos) {
		this.cursos = cursos;
	}
	

	//bi-directional many-to-one association to SesionLectiva
	@OneToMany(mappedBy="docente")
	public List<SesionLectiva> getSesionlectivas() {
		return this.sesionlectivas;
	}

	public void setSesionlectivas(List<SesionLectiva> sesionlectivas) {
		this.sesionlectivas = sesionlectivas;
	}
	
}